/**
 ******************************************************************************
 * @file           : locator.h
 * @brief          : Header for locator.c file.
 ******************************************************************************
 * @attention
 ******************************************************************************
 */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __LOCATOR_H
#define __LOCATOR_H
/* Private includes ----------------------------------------------------------*/
#include <stdint.h>
/* Exported types ------------------------------------------------------------*/
/* 为每一个定位器，创建一个面向对象的结构体 */
typedef struct{
	/* 单片机的ID（32位），唯一标识符 */
	uint8_t mcuID[33];

	/* GPS定位数据，经度、纬度 */
	double longitude;/* 经度 */
	uint8_t longitudeDirection[2];/* 经度方向 */
	double latitude;/* 纬度 */
	uint8_t latitudeDirection[2];/* 纬度方向 */

	/* GPS定位时间，2025-08-21 12:38:25 */
	uint8_t UTCTime[21]; /* 世界的“时区零点” */
	uint8_t BeijingTime[21]; /* 北京时间 */

	/* 计步数据 */
	uint32_t stepCount;

	/* 最终上传数据 */
	uint8_t uploadData[512];
}locator_t;


/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions prototypes ---------------------------------------------*/
void Locator_Init(void);
void Locator_EnterLowPowerMode(void);
void Locator_ExitLowPowerMode(void);
void Locator_GetSensorData(locator_t *locator);
void Locator_ConvertDataToJSON(locator_t *locator);
uint8_t Locator_SendDataToServer(locator_t *locator);
void Locator_ConvertUTCToBeijingTime(uint8_t *UTCTime, uint8_t *BeijingTime);
/* Private defines -----------------------------------------------------------*/

#endif /* __LOCATOR_H */
